#ifndef INP_H
#define INP_H
#include <string>
#include <fstream>
using std::string;
namespace inp
{
//Grid file (in)
const string fngrid{"laval.grd"};
//
//Results to plot (out)
const string fnplot{"flow.dat"};
//
//Convergence history (out)
const string fnconv{"conver_c.v2d"};
//
//Restart solution (in/out)
const string fnrest{"rest_c"};
//
//Physics
//-------
constexpr double p01{1.E+5};    //inlet total pressure [Pa]
constexpr double t01{288.0};    //inlet total temperature [K]
constexpr double p2{0.7E+5};    //outlet static pressure [Pa]
constexpr double gamma{1.4};    //ratio of specific heats
constexpr double cpgas{1005.0}; //specific heat coeff. at constant pressure [J/kgK]
constexpr double gam1{gamma - 1.0}, gap1{gamma + 1.0};
constexpr double rgas{cpgas * gam1 / gamma};
//
//Iteration control
//-----------------
constexpr size_t maxiter{50000};  //max. number of iterations
constexpr double convtol{1.E-6}; //convergence tolerance
const string lrest{"N"};         //read restart solution (N=no, Y=yes)
//
//Numerical parameters
//--------------------
constexpr double cfl{4.5};      //CFL-number
constexpr double epsirs{0.8};   //coefficient of implicit residual smoothing
const string kdissip{"r"};      //C=central scheme / U=CUSP scheme / R=Roe's upwind scheme
constexpr double vis2{0.0};     //artificial dissipation coefficient - k2   (central scheme)
constexpr double vis4{0.0};     //artificial dissipation coefficient - 1/k4 (central scheme)
constexpr size_t iorder{3};     //space: 1=1st-order / 2=2nd-order / 3=kappa=1/3 (Roe's scheme)
constexpr double limfac{10.0};   //limiter coefficient (Roe's scheme)
constexpr double epsentr{0.01}; //entropy correction coefficient (Roe's scheme)
constexpr size_t nrk{5};        //number of stages

constexpr double ark[nrk]{0.0695, 0.1602, 0.2898, 0.5060, 1.000}; //stage coefficients
constexpr double betrk[nrk]{1.00, 1.00, 1.00, 1.00, 1.00};        //dissipation blending coeff.
constexpr int ldiss[nrk]{1, 1, 1, 1, 1};                          //dissipation evaluation (1=yes)
constexpr int lsmoo[nrk]{1, 1, 1, 1, 1};                          //residual smoothing (1=yes)
// double rho_ref, u_ref, p_ref, vol_ref;
} // namespace inp

namespace inp
{
// std::ofstream convergence_file{fnconv, std::ios_base::out};
// double rho_ref, u_ref, p_ref, vol_ref;
} // namespace inp

#endif